How Diffusion Models Work